#ifndef CVMEMORY_H_INCLUDED
#define CVMEMORY_H_INCLUDED
#include <boost/pool/pool_alloc.hpp>

/// This header encapsulates mostly boost:: stuff to make it less confusing.

/** template proxy struct
	-boost::pool_allocator with malloc, free and _without_ thread safety. */
template<typename T> struct cvPoolAllocator
{
	// use this allocator for std::vector and such. (continuous blocks of memory)
	typedef boost::pool_allocator<T, boost::default_user_allocator_malloc_free, boost::details::pool::null_mutex> CON;//TINOUSly ordered storgate
	// use this allocator for std::list and such	(lot's of tiny objects in memory)
	typedef boost::fast_pool_allocator<T, boost::default_user_allocator_malloc_free, boost::details::pool::null_mutex> RAN;//OMly ordered storgate
};


// Fast general pool for all Cool VES objects
typedef boost::pool<boost::default_user_allocator_malloc_free> cvPool;

#endif // CVMEMORY_H_INCLUDED
